#ifndef _GEOMETRY_AXIS_H_
#define _GEOMETRY_AXIS_H_

#include "./geometry_define.h"

namespace Mathematics {
	namespace Geometry {

		enum CartesianCoordinate {
			X = 0,
			Y = 1,
			Z = 2
		};

		inline string& operator += ( string &str, const CartesianCoordinate &obj ) {
			if( obj == X ) return str += "X";
			if( obj == Y ) return str += "Y";
			return str += "Z"; // Z
		};

		inline string operator + ( const string &str, const CartesianCoordinate &obj ) {
			string result = str;
			return result += obj;
		};

		inline string operator + ( const CartesianCoordinate &obj, const string &str ) {
			return string("") + obj + str;
		};

		inline ostream& operator << ( ostream &out, const CartesianCoordinate &obj ) {
			return out << ( string("") + obj );
		};

	};
};

#endif // _GEOMETRY_AXIS_H_
